/**
 * 
 */
package ec.edu.uce.erp.ejb.persistence.dao.impl;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import ec.edu.uce.erp.ejb.persistence.dao.CompaniaDAO;
import ec.edu.uce.erp.ejb.persistence.dao.FactoryDAO;
import ec.edu.uce.erp.ejb.persistence.dao.HistoricoTransaccioneDAO;
import ec.edu.uce.erp.ejb.persistence.dao.ModuloDAO;
import ec.edu.uce.erp.ejb.persistence.dao.PerfilDAO;
import ec.edu.uce.erp.ejb.persistence.dao.UsuarioDAO;

/**
 * @author 
 *
 */
@Stateless
public class FactoryDAOImpl implements FactoryDAO {
	
	@PersistenceContext
	private EntityManager entityManager;
	
	private UsuarioDAO usuarioDAO;
	private HistoricoTransaccioneDAO historicoTransaccioneDAO;
	
	private CompaniaDAO companiaDAO;
	private ModuloDAO moduloDAO;
	private PerfilDAO perfilDAO;

	@Override
	public UsuarioDAO getUsuarioDAOImpl() {
		if (usuarioDAO == null) {
			usuarioDAO = new UsuarioDAOImpl(entityManager);
		}
		return usuarioDAO;
	}
	
	@Override
	public CompaniaDAO getCompaniaDAOImpl() {
		if (companiaDAO == null) {
			companiaDAO = new CompaniaDAOImpl(entityManager);
		}
		return companiaDAO;
	}

	@Override
	public ModuloDAO getModuloDAOImpl() {
		if (moduloDAO == null) {
			moduloDAO = new ModuloDAOImpl(entityManager);
		}
		return moduloDAO;
	}

	@Override
	public PerfilDAO getPerfilDAOImpl() {
		if (perfilDAO == null) {
			perfilDAO = new PerfilDAOImpl(entityManager);
		}
		return perfilDAO;
	}

	@Override
	public HistoricoTransaccioneDAO getHistoricoTransaccioneDAOImpl() {
		if (historicoTransaccioneDAO == null) {
			historicoTransaccioneDAO = new HistoricoTransaccioneDAOImpl(entityManager);
		}
		return historicoTransaccioneDAO;
	}

}
